﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace proyectoENS
{
    public sealed partial class frmListaAsistencia : Form
    {
        public int IdCurso { get; set; }
        List<Alumnos> lista;
        int cantColumnas;
        private static frmListaAsistencia Instancia;
        public static frmListaAsistencia onlyInstancia
        {
            get
            {
                if (Instancia == null || Instancia.IsDisposed)
                    Instancia = new frmListaAsistencia();
                return Instancia;
            }
        }
        private frmListaAsistencia()
        {
            InitializeComponent();
            cbxAño.DataSource = DALCursos.getAños();
        }

        private void btnSeleccionar_Click(object sender, EventArgs e)
        {
            IdCurso = (int)((Cursos)cbxDivision.SelectedItem).idCurso;
            lista = DALAlumnos.getAlumnosByIdCurso(IdCurso);


            createDataGrid();
            cargarDataGrid();

        }
        private void createDataGrid()
        {
            dgvListaAsistencia.Rows.Clear();
            dgvListaAsistencia.Columns.Clear();
            DataGridViewColumn c = new DataGridViewColumn();
            c.HeaderText = "Alumno";
            c.CellTemplate = new DataGridViewTextBoxCell();
            c.Name = "alumno";
            c.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dgvListaAsistencia.Columns.Add(c);

            cantColumnas = FechaFin.Value.Subtract(FechaInicio.Value).Days + 1;
            for (int i = 0; i < cantColumnas; i++)
            {
                if (FechaInicio.Value.AddDays(i).DayOfWeek != DayOfWeek.Saturday && FechaInicio.Value.AddDays(i).DayOfWeek != DayOfWeek.Sunday)
                {
                    c = new DataGridViewColumn();
                    c.HeaderText = FechaInicio.Value.AddDays(i).ToShortDateString();
                    c.CellTemplate = new DataGridViewTextBoxCell();
                    c.Name = FechaInicio.Value.AddDays(i).ToShortDateString();
                    c.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    dgvListaAsistencia.Columns.Add(c);
                }
            }
        }
        private void cargarDataGrid()
        {
            string[] row = new string[dgvListaAsistencia.Columns.Count];
            foreach (Alumnos item in lista)
            {
                row[0] = item.Apellidos + ", " + item.nombres;
                foreach (DataGridViewColumn col in dgvListaAsistencia.Columns)
                {
                    if (col.Index > 0)
                    {
                        if (DALAsistencias.getAsistenciaByAlumnoFecha(item.id, DateTime.Parse(col.Name)) != null)
                            row[col.Index] = DALAsistencias.getAsistenciaByAlumnoFecha(item.id, DateTime.Parse(col.Name)).asistencia;
                        else
                            row[col.Index] = "N/D";
                    }
                }
                dgvListaAsistencia.Rows.Add(row);
            }
        }

        private void cbxAño_SelectedIndexChanged(object sender, EventArgs e)
        {
            int tmp = int.Parse(cbxAño.SelectedValue.ToString());
            cbxDivision.DataSource = DALCursos.getDivisiones(tmp);
        }

        private void btnExportar_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable("Asistencia");
            DataRow dr;
        }

        private void frmListaAsistencia_Load(object sender, EventArgs e)
        {

        }
    }
}

